package com.moyoutian.leetcode;

/**
 * 1446. 连续字符
 * <p>
 * 给你一个字符串 s ，字符串的「能量」定义为：只包含一种字符的最长非空子字符串的长度。
 * <p>
 * 请你返回字符串的能量。
 * <p>
 * <p>
 * <p>
 * 示例 1：
 * <p>
 * 输入：s = "leetcode"
 * <p>
 * 输出：2
 * <p>
 * 解释：子字符串 "ee" 长度为 2 ，只包含字符 'e' 。
 * <p>
 * 示例 2：
 * <p>
 * 输入：s = "abbcccddddeeeeedcba"
 * <p>
 * 输出：5
 * <p>
 * 解释：子字符串 "eeeee" 长度为 5 ，只包含字符 'e' 。
 * <p>
 * 示例 3：
 * <p>
 * 输入：s = "triplepillooooow"
 * <p>
 * 输出：5
 * <p>
 * 示例 4：
 * <p>
 * 输入：s = "hooraaaaaaaaaaay"
 * <p>
 * 输出：11
 * <p>
 * 示例 5：
 * <p>
 * 输入：s = "tourist"
 * <p>
 * 输出：1
 * <p>
 * <p>
 * 提示：
 * <p>
 * 1 <= s.length <= 500
 * s 只包含小写英文字母。
 * 通过次数19,420提交次数32,260
 */
public class Demo1446 {
    /**
     * 9:33
     *
     * @param args
     */
    public static void main(String[] args) {
        System.out.println(maxPower("cc"));
    }

    /**
     * 简单思路分析
     * 因为是要求连续相同的，所以能够在一次便利中找到连续相同的字符数量，最大的只需要找与之前作比较即可。
     *
     * @param s
     * @return
     */
    public static int maxPower(String s) {
        int re = 0;
        int c = 0;
        if (s.length() == 1) {
            return 1;
        }
        for (int i = 1; i < s.length(); i++) {
            if (s.charAt(i) == s.charAt(i - 1)) {
                c++;
            } else {
                re = Math.max(re, c + 1);
                c = 0;
            }
        }
        re = Math.max(re, c + 1);
        return re;
    }
}
